Method for code division multiple access communication with increased capacity through self-noise reduction

ABSTRACT

A method for constructing orthogonal codes of length N for use in a network utilizing quasi-synchronous code division multiple access combined with time division duplexing. The method determines the balanced vectors of length N, being all possible cross-correlation vectors resulting from zero cross-correlation of codes of length N. An arbitrary code of length N is utilized, and a bitwise XOR-ing is performed with all the balanced vectors to produce a set of codes with which the arbitrary code is orthogonal. A bitwise XOR-ing of the original balanced vectors is performed and the code is added to a set of orthogonal codes if the result of the bitwise XOR-ing of the original balanced vectors is balanced. The method is repeated until the set of orthogonal codes is complete.

PRIORITY

[0001] This application is divisional application of U.S. patentapplication Ser. No. 09/995,853, filed on Nov. 27, 2001, which is acontinuation application of U.S. patent application Ser. No. 09/306,589,filed on May 6, 1999, now U.S. Pat. No. 6,324,159. This applicationclaims the benefit of the filing date of U.S. Patent Application No.60/084,439, filed on May 6, 1998, for “METHOD AND APPARATUS FOR CODEDIVISION MULTIPLE ACCESS COMMUNICATION WITH INCREASED CAPACITY THROUGHSELF-NOISE REDUCTION” to Mennekens, et al.

FIELD OF THE INVENTION

[0002] The invention is situated in the field of Quasi Synchronous CodeDivision Multiple Access combined with Time Division Duplexing.

DESCRIPTION OF THE RELATED TECHNOLOGY

[0003] CDMA (Code Division Multiple Access) is one of the leadingtechnologies in today's and future wireless and wireline communicationssystems.

[0004] Also known as Direct Sequence Spread Spectrum, CDMA is the bestknown representative of the class of spread spectrum modulation schemes.A CDMA waveform is generated by spreading (EXOR-ing) the data streamwith a PN-code, resulting in a higher bandwidth, usually at lower powerspectral density. Different users are multiplexed by using orthogonal orquasi-orthogonal codes.

[0005] CDMA is used for a variety of reasons. CDMA has its origin in themilitary, where use of PN-codes (Pseudo Noise) was exploited for thesake of its Low Probability of Intercept (LPI) or its Low Probability ofDetection (LPD). Since the late eighties, civil applications started tobe developed, and have now reached a high level of maturity and marketpenetration. Advantages of spread spectrum include the inherentinterference rejection capabilities, the efficient way for multiplexingmultiple services, the higher capacity, a more efficient use of thespectrum and the lower terminal costs.

[0006] In satellite communications, CDMA is being exploited for lowrate, medium rate as well as broadband type of communications. Low rateapplications include, e.g., SMS (Short Messaging Services), E-mail oversatellite, remote meter reading, voice and data services (fax), andpositioning and geolocation applications.

[0007] When used in the VHF and UHF bands, one talks about the so-called‘Little LEO’ (Low Earth Orbit) applications. CDMA is used for itscapability of coping with high interference levels in these bands, andbecause it allows to multiplex a high amount of users with limitedprotocol overhead. In order to provide global coverage, they are usuallystore-and-forward satellite systems with sophisticated OBP (On-BoardProcessing) capabilities.

[0008] Data and fax services using CDMA are found in the L and S bands(in the case of the so-called ‘big LEO’ constellations) and Ku-bands(when using transponders of GEO satellites). Different systems can sharethe same part of the spectrum. Cost-effective terminals are possible byexploiting a high degree of on-chip integration.

[0009] The Ku-band frequencies are mostly used by geostationarysatellites, for applications such as DBS (Direct Broadcasting bySatellite). With the enormous growth of the demand for medium rate dataservices (mostly for the transport of Internet data), transponders inKu-band are increasingly used also for implementing these data services(multiples of 64 kbps net user data rate).

[0010] CDMA-based solutions have an important cost advantage over thetraditional PSK-based VSAT solutions. Ground station development isfacilitated using the CDMA DataSat Development System. Other applicationexamples in the Ku-band include the combination of terrestrial low costnetworks (based on DECT) with a S-CDMA (Synchronous CDMA) satellite formultiplexing the different telephone channels. In more and more cases,CDMA is being used as an overlay to existing satellite services. This isa very efficient use of spread spectrum in view of the limited spectrumbeing available. One such example is D-SNG (Digital Satellite NewsGathering), where the CDMA-based coordination channels are put on top ofthe transponder QPSK DVB (Digital Video Broadcasting) signals.

[0011] Besides the ongoing developments using existing GEO capacity,LEO-based satellite systems are under development to provide truebroadband access to individual users, using CDMA technology. SeveralMbit/s can be offered to the individual user. In some cases, thesespread spectrum high-rate applications share the spectrum with other,non-CDMA services, by realizing links with very low power spectraldensity.

[0012] CDMA Applications

[0013] Probably the best known satellite application using CDMAtechnology is navigation. Both GPS (Global Positioning System) andGLONASS (GLObal Navigation Satellite System, the Russian counterpart)use Direct Sequence Spread Spectrum waveforms for obtaining accuratepseudo-range measurements, which are the raw data to calculate aposition fix. GPS has been complemented with the EGNOS (EuropeanGeostationary Navigation Overlay System) and the American WAAS (WideArea Augmentation System), to increase the performance.

[0014] Proposed European GNSS-2 (Global Navigation Satellite System)will provide higher accuracy and increased data rate using moresophisticated waveforms. Besides the vast consumer market for standardreceivers, there's also a professional market for RTK (Real-TimeKinematic) receivers. These applications exploit the increased accuracyassociated with tracking (or pseudo-tracking) of the P-Code(PrecisionCode) of GPS or GLONASS satellites. Alternative navigation systems arebeing developed, based on combined pseudo-range and Dopplermeasurements.

[0015] In wireless terrestrial communications, one can make adistinction between applications in licensed and in unlicensed bands.

[0016] UMTS Applications

[0017] In licensed bands, the best known system under development is theUMTS (Universal Mobile Telecommunications System), based on W-CDMA(Wideband CDMA) technology. Worldwide, this development fits in theIMT-2000 (International Mobile Telephone System) initiative from theITU, which aims at realizing a true worldwide applicable 3G standard.The benefits of CDMA exploited here are the ability to merge differenttypes of services (voice, data, video) over the same band, usingorthogonal PN sequences of different lengths, leading to the bestcapacity(bits/Hz). This so-called 3G (3rd Generation) cellular networkswill be commercially exploited from 2001 on, as an extension to theworldwide deployed GSM networks.

[0018] The provision of the license-free ISM (Industrial, Scientific andMedical) bands has boosted a lot of other terrestrial wirelessapplications. Well-known ISM bands are the 902-928 MHz band in the US,and the 2.4-2.4835 GHz band worldwide. CDMA is used here for its abilityto share the same spectrum with other applications. Short range and Longrange communications are being realized in these shared bands,efficiently rejecting the MAI (Multiple Access Interference). Data ratesof several hundreds of kilobits per second are possible in this way.

[0019] Furthermore, applications such as from CATV modems and powerlinemodems also benefit CDMA, as once again the unwanted unpredictableinterference (e.g., ingress noise cancelled) is efficiently through theprocessing gain of the spread spectrum modulation scheme.

[0020] U.S. Pat. No. 5,872,810 and European Patent ApplicationEP-A-0767544 describe a flexible hardware platform on which any PN codefamily can be downloaded on on-chip RAM; the PN code properties andtheir influence on the performance of a CDMA link can be analyzed withthis platform and these documents further describe a CDMA transceiverintegrated circuit on which any PN codes can be stored on on-chip RAM.

[0021] De Gaudenzi et al. describe in U.S. Pat. No. 5,327,467 aCDMA-based system primarily of interest for mobile communications.

[0022] In U.S. Pat. No. 5,327,455, they describe a QPSK/CDMA modulationscheme, using preferentially phased Gold codes for spreading the datastreams;

[0023] In R. De Gaudenzi, C. Elia and R. Viola, “Bandlimitedquasi-synchronous CDMA: A novel access technique for mobile and personalcommunication systems,” IEEE Selected Areas in Communications, vol. 10,no. 2, pp. 328-348, February 1992, CDMA-base satellite communicationssystem exploiting Quasi-Synchronous CDMA in order to obtain a highefficiency together with interference rejection capabilities aredescribed.

SUMMARY

[0024] One aspect of the present invention is a method of constructingorthogonal codes of length N for use in a network utilizingquasi-synchronous code division multiple access combined with timedivision duplexing, the method comprising a) determining the balancedvectors of length N, being all possible cross-correlation vectorsresulting from zero cross-correlation of codes of length N; b) providingan arbitrary code of length N; c) performing bitwise XOR-ing with allthe balanced vectors determined in a), to produce a set of codes withwhich the arbitrary code is orthogonal; d) performing bitwise XOR-ing ofthe balanced vectors determined in a); e) adding the code to a set oforthogonal codes if the result of d) is balanced; f) performing a)through e) until the set of orthogonal codes contains maximally Northogonal codes; and g) applying the set of orthogonal codes to aplurality of data streams in the network so as to provide spreadspectrum data streams.

[0025] Another aspect of the present invention is a computer usablemedium having computer readable program code embodied therein forconstructing orthogonal codes of length N for use in a network utilizingquasi-synchronous code division multiple access combined with timedivision duplexing, the computer readable code comprising instructionsfor a) determining the balanced vectors of length N, being all possiblecross-correlation vectors resulting from zero cross-correlation of codesof length N; b) providing an arbitrary code of length N; c) performingbitwise XOR-ing with all the balanced vectors determined in a), toproduce a set of codes with which the arbitrary code is orthogonal; d)performing bitwise XOR-ing of the balanced vectors determined in a); e)adding the code to a set of orthogonal codes if the result of d) isbalanced; f) performing a) through e) until the set of orthogonal codescontains maximally N orthogonal codes; and g) applying the set oforthogonal codes to a plurality of data streams in the network so as toprovide spread spectrum data streams.

[0026] Another aspect of the present invention is a system forconstructing orthogonal codes of length N for use in a network utilizingquasi-synchronous code division multiple access combined with timedivision duplexing, the system comprising a) means for determining thebalanced vectors of length N, being all possible cross-correlationvectors resulting from zero cross-correlation of codes of length N; b)means for providing an arbitrary code of length N; c) means forperforming bitwise XOR-ing with all the balanced vectors determined ina), to produce a set of codes with which the arbitrary code isorthogonal; d) means for performing bitwise XOR-ing of the balancedvectors determined in a); e) means for adding the code to a set oforthogonal codes if the result of d) is balanced; f) means forperforming a) through e) until the set of orthogonal codes containsmaximally N orthogonal codes; and g) means for applying the set oforthogonal codes to a plurality of data streams in the network so as toprovide spread spectrum data streams.

[0027] Another aspect of the present invention is a method ofconstructing orthogonal codes of length N for use in a network utilizingquasi-synchronous code division multiple access combined with timedivision duplexing, the method comprising a) determining the balancedcodes of length N, being all possible cross-correlation codes resultingfrom zero cross-correlation of codes of length N; b) providing anarbitrary code of length N; c) performing bitwise XOR-ing of saidarbitrary code with all the balanced codes determined in a), to producecode sets of orthogonal codes, each code set corresponding to thebalanced vector used to produce said code set and each including thearbitrary code; d) performing bitwise XOR-ing of one of the set ofbalanced codes with each of the other members of the set of balancedcodes; e) for each of said bitwise XOR-ing operations in d): if theresult is balanced, adding said balanced result to a new set of balancedcodes and merging the two code sets corresponding to the two balancedcodes that resulted in said balanced result in d) to a new code setcorresponding to said balanced result; f) replacing said set of balancedcodes in d) with said new set of balanced codes obtained in e); g)performing d) through f) until the number of codes in said code setsequals N; and h) applying the set of orthogonal codes to a plurality ofdata streams in the network so as to provide spread spectrum datastreams.

[0028] Yet another aspect of the present invention is a computer usablemedium having computer readable program code embodied therein forconstructing orthogonal codes of length N for use in a network utilizingquasi-synchronous code division multiple access combined with timedivision duplexing, the computer readable code comprising instructionsfor a) determining the balanced codes of length N, being all possiblecross-correlation codes resulting from zero cross-correlation of codesof length N; b) providing an arbitrary code of length N; c) performingbitwise XOR-ing of said arbitrary code with all the balanced codesdetermined in a), to produce code sets of orthogonal codes, each codeset corresponding to the balanced vector used to produce said code setand each including the arbitrary code; d) performing bitwise XOR-ing ofone of the set of balanced codes with each of the other members of theset of balanced codes; e) for each of said bitwise XOR-ing operations ind): if the result is balanced, adding said balanced result to a new setof balanced codes and merging the two code sets corresponding to the twobalanced codes that resulted in said balanced result in d) to a new codeset corresponding to said balanced result; f) replacing said set ofbalanced codes in d) with said new set of balanced codes obtained in e);g) performing d) through f) until the number of codes in said code setsequals N; and h) applying the set of orthogonal codes to a plurality ofdata streams in the network so as to provide spread spectrum datastreams.

[0029] Yet another aspect of the present invention is a system forconstructing orthogonal codes of length N for use in a network utilizingquasi-synchronous code division multiple access combined with timedivision duplexing, the system comprising a) means for determining thebalanced codes of length N, being all possible cross-correlation codesresulting from zero cross-correlation of codes of length N; b) means forproviding an arbitrary code of length N; c) means for performing bitwiseXOR-ing of said arbitrary code with all the balanced codes determined ina), to produce code sets of orthogonal codes, each code setcorresponding to the balanced vector used to produce said code set andeach including the arbitrary code; d) means for performing bitwiseXOR-ing of one of the set of balanced codes with each of the othermembers of the set of balanced codes; e) means for each of said bitwiseXOR-ing operations in d): if the result is balanced, adding saidbalanced result to a new set of balanced codes and merging the two codesets corresponding to the two balanced codes that resulted in saidbalanced result in d) to a new code set corresponding to said balancedresult; f) means for replacing said set of balanced codes in d) withsaid new set of balanced codes obtained in e); g) means for performingd) through f) until the number of codes in said code sets equals N; andh) means for applying the set of orthogonal codes to a plurality of datastreams in the network so as to provide spread spectrum data streams.

BRIEF DESCRIPTION OF THE DRAWINGS

[0030]FIG. 1 illustrates an example dynamic code allocation andcontention resolution cycle in a wireless communication network of thepresent invention.

[0031]FIG. 2 illustrates the code set generated by a method of theinvention wherein the quality of the signal is maintained due to theout-phase cross-correlation.

DETAILED DESCRIPTION OF THE INVENTION

[0032] The invention is a method of multiplexing users in a networkusing QS-CDMA combined with TDD. The Quasi-Synchronous Communication inthe return link (i.e., from user terminal to base station) is realizedby RX/TX switching at the user terminals based on reception of anend-of-transmit bit. Due to propagation time differences, the arrivaltimes of symbol edges at the base station side are not perfectlysynchronous. However, the codes used are such that the cross-correlationis minimal. In a described variant of the system, perfectly zerocross-correlation is obtained between the quasi-synchronous returnlinks. The net effect is a minimized or zero self-noise, increasing theavailable Eb/NØ and ameliorating the BER, compared to systems with selfnoise. The net effect is an increased capacity for the same Eb/NØ andBER as in systems with self-noise. Code construction methods aredescribed in the invention.

[0033] The application domain of the invention comprises (non-limitativelist): satellite communications with mobile and fixed terminals,cellular communications, short-range terrestrial communications (likefor data collection), CATV upstream/downstream modems, powerline modems,copper-wire telephone lines.

[0034] The following abbreviations are used in this patent application:

[0035] BER: Bit Error Rate

[0036] BPSK: Binary Phase Shift Keying

[0037] CATV: Community Antenna Television, i.e., cable TV

[0038] CDMA: Code Division Multiple Access

[0039] Chip: PN-Code bit

[0040] CSM: Code Shift Modulation

[0041] DSRC: Dedicated Short Range Communication

[0042] Eb: Energy per bit

[0043] NØ: Noise Power Density

[0044] PN: Pseudo Noise

[0045] QS-CDMA: Quasi Synchronous CDMA

[0046] RX: Receive

[0047] S-CDMA: Synchronous CDMA

[0048] TDD: Time Division Duplexing

[0049] TDMA: Time Division Multiple Access

[0050] TX: Transmit

[0051] The invention will be illustrated using several non-limitingexamples and figures.

[0052] Truly orthogonal PN codes which are currently used, such as Walshcodes in the IS-95 system or OVSF (Orthogonal Variable Spreading Factor)codes in the UMTS system, lack the possibility of being used for chipphase acquisition. In systems where composed waveforms are not required,the truly orthogonal codes derived in this invention can be used forchip phase acquisition, while full orthogonality (and hence absence ofcross-correlation) is preserved, and alleviating the need for powercontrol;

[0053] Existing quasi-synchronous CDMA proposals can be simplified usingthe method described in this invention to guarantee evencross-correlation over the uncertainty range of the chip phase controlloop. An important application is mobile satellite communications, wherea relaxed control loop is sufficient to keep the cross-correlation low,with only a small penalty in capacity loss.

[0054] For short-range applications, the TDD network is of particularinterest because it provides dynamic multiple access capabilitieswithout a chip phase control loop.

[0055] These methods and implementations are particularly useful in theincreasing number of CDMA-based terrestrial and satellite proprietaryapplications which are currently developed.

EXAMPLE 1 A Method for the Construction of Orthogonal Binary Codes

[0056] If two codes are orthogonal then the result of thecross-correlation function is zero.

[0057] (CC(A,B)=0<=>(A XOR B) is balanced

[0058] If PN-Code A and PN-Code B are orthogonal (with A XOR B=R) and ifPN-Code A and PN-Code C are orthogonal (with A XOR C=S) and if PN-Code Rand PN-Code S are orthogonal then PN-Code B and PN-Code C areorthogonal. In other words, the initial orthogonal PN-code set {A,B} hasbeen extended with the new PN-Code C to a new orthogonal set {A,B,C}.CC(R,S) = 0 <=> (R XOR S) is balanced   substitution <=> ((A XOR B) XOR(A XOR C)) is balanced x XOR (y XOR z) = (x XOR y) XOR z = x XOR y XOR zx XOR y = y XOR x <=> ((A XOR A) XOR (B XOR C)) is balanced x XOR x = 0<=> (0 XOR (B XOR C)) is balanced x XOR 0 = x <=> (B XOR C) is balanced<=> CC(B,C) = 0

EXAMPLE 1A

[0059] $\begin{matrix}{{\begin{matrix}{{A = 1001},{B = 0011}} & {= >}\end{matrix}R} = {{A\quad {XOR}\quad B} = {1001\quad {XOR}}}} \\{0011 = {1010\quad ({balanced})}} \\\begin{matrix}{{\begin{matrix}{{A = 1001},{C = 1111}} & {= >}\end{matrix}S} = {{A\quad {XOR}\quad C} = {1001\quad {XOR}}}} \\{1111 = {0110\quad ({balanced})}}\end{matrix} \\\begin{matrix}{{{\begin{matrix}{{R = 1010},{S = 0110}} & {= >}\end{matrix}R\quad {XOR}\quad S} = {1010\quad {XOR}}}\quad} \\{0110 = {1100\quad ({balanced})}}\end{matrix} \\\begin{matrix}\quad & \quad \\\quad & \begin{matrix}{\quad {= >}} & {{{B\quad {XOR}\quad C} = {0011\quad {XOR}}}\quad}\end{matrix} \\\quad & {{1111 = {1100\quad ({balanced})}}\quad}\end{matrix}\end{matrix}$

[0060] A, B and C are a set of three orthogonal codes.

[0061] These steps can be repeated with all the PN-Codes that areorthogonal with A, until the results aren't balanced anymore.

[0062] The number of codes that are balanced is:

[0063] n!/((n/2)!* (n/2)!)

[0064] with n=number of chips in the PN-Code and n is always even.

EXAMPLE 1B

[0065] $\begin{matrix}{n = 4} & {= >} & {{{4!}/\left( {{2!}*{2!}} \right)} = 6} \\\quad & {= >} & {6\quad {balanced}\quad 4\text{-}{bit}\quad {PN}\text{-}{Codes}} \\\quad & {= >} & {0011\quad 0101\quad 0110\quad 1001\quad 1010\quad 1100}\end{matrix}$

[0066] The decimal representation of these codes is: 3, 5, 6, 9, 10 and12

[0067] If one takes an arbitrary 4-bit PN-code and wants to find all thePN-codes that are orthogonal with this arbitrary PN-Code, one can usethe balanced codes and XOR them with the arbitrary PN-Code. This willresult in a set of PN-Codes that are orthogonal.

[0068] X XOR balanced_code=Y<=>X XOR Y=balanced_code

[0069] <=>CC(X,Y)=0

EXAMPLE 1C

[0070] Decimal representation of the binary code is used.

[0071] Arbitrary code=13 (=1101), balanced codes={3, 5, 6, 9, 10, 12}$\begin{matrix}{{13\quad {XOR}\quad 3} = 14} & \quad & {{13\quad {XOR}\quad 14} = 3} & \quad & {\quad {{{CC}\left( {13,14} \right)} = 0}\quad} \\{{13\quad {XOR}\quad 5} = 8} & \quad & {{13\quad {XOR}\quad 8} = 5} & \quad & {\quad {{{CC}\left( {13,8} \right)} = 0}} \\{{13\quad {XOR}\quad 6} = 11} & {<= >} & {{13\quad {XOR}\quad 11} = 6} & {<= >} & {\quad {{{CC}\left( {13,11} \right)} = 0}} \\{{13\quad {XOR}\quad 9} = 4} & \quad & {{13\quad {XOR}\quad 4} = 9} & \quad & {\quad {{{CC}\left( {13,4} \right)} = 0}} \\{{13\quad {XOR}\quad 10} = 7} & \quad & {{13\quad {XOR}\quad 7} = 10} & \quad & {\quad {{{CC}\left( {13,7} \right)} = 0}} \\{{13\quad {XOR}\quad 12} = 1} & \quad & {{13\quad {XOR}\quad 1} = 12} & \quad & {\quad {{{CC}\left( {13,1} \right)} = 0}}\end{matrix}\quad$

[0072] We now have all the PN-Codes that are orthogonal with thearbitrary PN-code, by checking the cross-correlation of balancedresults, we can find PN-Codes that are mutually orthogonal and so extendthe orthogonal set of PN-Codes. As an example, one can check the resultof 13 XOR 14 (=3) with all other results. $\begin{matrix}{{3\quad {XOR}\quad 5} = 6} & \quad & {\quad {{{CC}\left( {14,8} \right)} = 0}\quad} & \quad & {\quad {{{CC}\left( {13,14,8} \right)} = 0}\quad} \\{{3\quad {XOR}\quad 6} = 5} & \quad & {\quad {{{CC}\left( {14,11} \right)} = 0}} & \quad & {\quad {{{CC}\left( {13,14,11} \right)} = 0}} \\{{3\quad {XOR}\quad 9} = 10} & {<= >} & {\quad {{{CC}\left( {14,4} \right)} = 0}} & {<= >} & {\quad {{{CC}\left( {13,14,4} \right)} = 0}} \\{{3\quad {XOR}\quad 10} = 9} & \quad & {\quad {{{CC}\left( {14,7} \right)} = 0}} & \quad & {\quad {{{CC}\left( {13,14,7} \right)} = 0}} \\{{3\quad {XOR}\quad 12} = 15} & \quad & {\quad {{NOT}\quad {balanced}}} & \quad & \quad\end{matrix}$

[0073] One can repeat this check with the result of 3 XOR 5 (=6) and allother balanced results. $\begin{matrix}{{{6\quad {XOR}\quad 5} = 3}\quad} & {{{{CC}\left( {8,11} \right)} = 0}\quad} & {{{CC}\left( {13,14,8,11} \right)} = 0} \\{{{6\quad {XOR}\quad 10} = {12<= >}}\quad} & {{{{CC}\left( {8,4} \right)} = {0<= >}}\quad} & {{{{CC}\left( {13,14,8,4} \right)} = 0}\quad} \\{{{6\quad {XOR}\quad 9} = 15}\quad} & {{{NOT}\quad {balanced}}\quad} & \quad\end{matrix}$

[0074] One can repeat the check again with the result of 6 XOR 5 (=3)and the one of 6 XOR 10 (=12)

[0075] 3 XOR 12 =15<=>NOT balanced

[0076] So (8,11,13,14) and (4,8,13,14) are orthogonal code sets.

EXAMPLE 2 A Method for Deriving Alternative Sets of Orthogonal Codes

[0077] If one has a set of orthogonal codes, presented in matrix format,(with the first even cross-correlation point equal to zero), then a newset of orthogonal codes can be obtained by

[0078] A: Permutation of the columns;

[0079] B: Permutation of the rows;

[0080] C: Inverting an arbitrary column;

[0081] D: Inverting an arbitrary row.

EXAMPLE 2A

[0082] 4 orthogonal codes as starting point. 0000 col2 0000 col4 0001row4 0001 0101

0011 ↓ 0010 ↓ 0010 0011 col3 0101 !col4 0100 !row4 0100 0110 0110 01111000

[0083] This is in fact a set suited for CSM which is orthogonal.

EXAMPLE 3 A method for the Construction of Even Zero Cross-CorrelationCodes for a Number of Consecutive Points

[0084] Perform the manipulations on a set of orthogonal codes, like inexample 2, in order to obtain a subset of codes with a number ofconsecutive points (greater than 1) equal to zero. Investigate theauto-correlation functions during the search process in order to retainthe solutions which have a well peaked response.

EXAMPLE 4 A Method for the Construction of Even Zero Cross-CorrelationCodes of Length N+M, Given Orthogonal Codes of Length N and M

[0085] These codes are generated by concatenating the codes with lengthN and M in order to obtain a new code with length N+M.

EXAMPLE 4A

[0086] N=8 and M=4, then 4 orthogonal codes of length 12 can be made.

EXAMPLE 5 A Method for Constructing Codes Out of a Combination of TwoDifferent Sets

[0087] 1. Take one code (or code family) A (the ‘generator’)

[0088] 2. Take a second code (or code family) B (the ‘seed’)

[0089] 3. Replace every bit of code A by code B, taking code B if thebit in code A is zero, taking the bit-inverse of code B if the bit incode A is one.

[0090] This gives a new code of length A * B, called a ‘genetic’ code

EXAMPLE 5A

[0091]Code  A = 1010, Code  B = 1110   =  > combined  (genetic)  code = 0001  1110  0001  1110  !B  B  !B  B

[0092] Properties regarding auto- and cross-correlation of the‘generator’ code are preserved, but mixed/modified with the propertiesof the ‘seed’ code.

[0093] Assume a code A with good cross-correlation, but badauto-correlation properties and assume a code B with goodcross-correlation and good auto-correlation properties, then a new codecan be constructed with good cross-correlation properties and anauto-correlation profile containing several, equally-spaced peaks. Thedistance between the peaks is the length of code B, and the number ofpeaks is the length of code A.

[0094] Code families can be constructed with predictable properties, ofany given length (extensive investigation required to search for exactquality transfer capabilities).

[0095] A consequence of examples 1 to 5 is that manipulation allows tohave any code of a certain length in some set. Hence spectralproperties, auto-correlation profile, etc. can be influenced in thisway.

EXAMPLE 6 A Method for a PN-Code Fast Acquisition, Using Codes withEqually Spaced Peaks.

[0096] Given a code with not one, but several equally-spacedauto-correlation peaks, it is possible to reduce the acquisition timewith the following algorithm :

[0097] 1. Search for any auto-correlation peak in the code using anymethod;

[0098] 2. Test for the validity of the choice (since there are severalpossibilities) e.g., by demodulating a few bits;

[0099] 3. If the choice is not correct, immediately test the nextauto-correlation peak. The position of this peak is already known, sincethey are equidistant;

[0100] 4. If the choice is valid, the acquisition is obtained.

[0101] The advantage here is the dramatically reduced acquisition time,required for long codes.

EXAMPLE 7 A Method to Guarantee an Even Cross-Correlation on the FirstSymbol Sent

[0102] The symbols are sent out twice, in order to guarantee the firstsymbol always being in the presence of even cross-correlation only. Thiscan be further extended by also providing a repetition before the symbolof interest (to allow both mutually advanced and retarded simultaneouslinks). The technique can be optimized by a PARTIAL duplication beforeand after the symbol of interest, just enough to provide even crosscorrelation in all circumstances.(This requires an adaptation of theactive integration times at the base station).

EXAMPLE 7A

[0103] code: 1101011101 extended code: 1011101011101110

[0104] In cases were only a limited set of codes is required (andfurthermore the external interference rejection rather than the capacityof the system is important), full-zero even cross correlation can beobtained always, by applying the technique of doubling the data bitssent out.

[0105] In the two cases above, zero self-noise is obtained duringtracking.

[0106] If the propagation delay between base station (gateway, hub,headend, . . . ) and user terminal is too high, it can be possible thatsynchronization within 1 symbol period (or within N chips) is impossibleby simple TDD. In this case, a relaxed pilot concept (cfr. BLQS-CDMA R.De Gaudenzi) can be applied, still preserving the zero self-noiseachievement. So this becomes also valid for satellite communicationsnetworks.

EXAMPLE 7B

[0107] A Cellular Network

[0108] The capacity of a cellular network or any other network that isinterference-limited can be increased with the described technique. Animportant consequence and advantage of the zero self-noise property isthe fact that tight transmit power control can be relaxed or evenbecomes obsolete.

[0109] What is still of importance however is the multipath degradation.In order to solve this, systems like IS-95 networks use Gold codescrambling to ameliorate the autocorrelation profile of the proposedcodes. However, by applying the RULES above, the start set of orthogonalcodes is scrambled and randomized, resulting in better autocorrelationproperties.

[0110] Calculations for Cellular Network:

[0111] Suppose a symbol rate of 5 kSps and a cell radius of 5 km. Theworst case direct path propagation time then equals:

10.10³.5.10³/3.10⁸=⅙th symbol period

[0112] This means that for a code length 16, three consequent zero'sneed to exist in the mutual even cross-correlation's. As more processinggain is left, due to minimized or zero self-noise, the FEC overhead canbe minimized as well, again contributing to higher capacity. Otherwise,short codes will give rise to the best chances for relatively long runsof even zero cross-correlation. But this is good, as the absolute timeof even zero cross-correlation is important, in the light of catchingthe propagation time uncertainty. The smaller channels, resulting fromthe shorter codes, can suffer more co-channel interference (overlappingchannels) due to the higher processing gain available.

EXAMPLE 8 An Apparatus (Implemented Network) with a TDD Layer for theQS-CDMA Return Link, Dynamic Code Allocation and Contention Resolution

[0113] The implementation of the network, as shown in FIG. 1, is basedon 3 sub-cycles:

[0114] 1.: SUB-CYCLE 1 (Log-On Phase)

[0115] The MASTER transmits a cell identifier and a list of free codes(or code sets) to be used by the SLAVES in the Collision ResolvingPhase. The MASTER uses a reserved PN-Code, the “MASTER-broadcast-code”.The SLAVES are in standby mode and are searching for this message. Onesthe message has been received, the transmitters of the SLAVES will besynchronized. An FFT was also taken, so a precompensated carrier can beused in the next sub-cycle.

[0116] 2.: SUB-CYCLE 2 (Collision Resolving Phase)

[0117] All the SLAVES try to transmit with one code from the list,selected randomly. The start epochs of the different SLAVES will besynchronized as good as possible, in order to reduce thecross-correlation energy as much as possible. The precompensated carrieris used here, so the MASTER can start demodulation without taking an FFT(replacing the FFT to the MASTER would result in higher bit errorprobability because of false FFT peaks resulting from noise. Noisereceived by SLAVE is lower because of pure S-CDMA transmission by BaseStation).

[0118] During sub-cycle 2, all the receivers of the SLAVES arefreewheeling.

[0119] 3.: SUB-CYCLE 3 (Acknowledging Phase)

[0120] The MASTER answers all messages it could demodulate, but due tocollisions (e.g., SLAVES using the same code) it is possible that notall messages are received. SLAVES can lock in directly because insub-cycle 1, they have taken an FFT and performed acquisition. Insub-cycle 2, they have been freewheeling. SLAVES that didn't got ananswer, can repeat sub-cycles 2 and 3. SLAVES that got an answer, canuse sub-cycle 2 to send a new message.

EXAMPLE 9 A Method for Constructing Orthogonal Non-Binary Digital Codesof Length N, with N Integer

[0121] Let S be a set of N mutually orthogonal vectors in anN-dimensional vector space, defined with the operations “+” (addition ofvectors) and “.” (scalar product of vectors). Each vector can berepresented by its coordinates with respect to the unity base in thedefined vector space. By definition, the scalar product of every 2vectors out of the set S is equal to zero.

[0122] Now one views these coordinates representations as digitalsequences of a set of digital codes. The cross-correlation of each pairof sequences out of the set S, defined as:

[0123] Σ(Ai*Bi) i=1 to N

[0124] is equal to zero, because the corresponding vectors areorthogonal, and the cross-correlation definition is equivalent to thescalar product of the corresponding vectors.

EXAMPLE 9A

[0125] (1,0,0,0,0)

[0126] (0,1,0,0,0)

[0127] (0,0,1,0,0)

[0128] (0,0,0,1,0)

[0129] (0,0,0,0,1)

[0130] is the unity base in the 5-dimensional vector space V, +, . . .When applying these coordinates as digital codes, the 1's correspond toactivity (burst), and the 0's correspond to the off-state. Themanipulation mechanisms explained above are also applicable here. Theapplicability of this code generation technique lies in the fact thatorthogonal code sets can be obtained for any length. A set isconstructed starting from a base, consisting of unity vectors, and thenconsecutive base transformations are applied, yielding a new base. Inthe new base, arbitrary gains can be applied to each vector, yielding anorthogonal codes set.

EXAMPLE 9B

[0131] Example of construction of a non-binary orthogonal code set oflength 5, starting from a base of the 5-dimensional vector space V, +,.

[0132] (1,0,0,0,0) V1

[0133] (0,1,0,0,0) V2

[0134] (0,0,1,0,0) V3

[0135] (0,0,0,1,0) V4

[0136] (0,0,0,0,1) V5

[0137] Suppose one applies subsequent transformations on 2 vectors Aiand Aj as such:

[0138] Ai->Aj+mod(Aj)/mod(Ai)*Ai

[0139] Aj->Ai−mod(Ai)/mod(Aj)*Aj

[0140] Then one obtains a new set which is still orthogonal, i.e., thescalar vector product: Ai . Aj=0

[0141] This transformation rotates 2 orthogonal vectors, in the planedefined by these vectors, over 45 degrees, and provides a gain of1/0.707

EXAMPLE

[0142] $\begin{matrix}{{{{\left( {1,0,0,0,0} \right)\quad {V1}\quad \left( {1,1,0,0,0} \right)\quad {V1}} + {V2}}->{{V1}\quad {mod}\quad ({V1})}} = 1.41} \\{{{{\left( {0,1,0,0,0} \right)\quad {V2}\quad \left( {1,{- 1},0,0,0} \right)\quad {V1}} - {V2}}->{{V2}\quad {mod}\quad ({V2})}} = 1.41} \\{{{{\left( {0,0,1,0,0} \right)\quad {V3}\quad \left( {0,0,1,1,0} \right)\quad {V3}} + {V4}}->{{V3}\quad {{mod}{\quad \quad}({V3})}}} = 1.41} \\{{{{\left( {0,0,0,1,0} \right)\quad {V4}\quad \left( {0,0,1,{- 1},0} \right)\quad {V3}} - {V4}}->{{V4}\quad {{mod}{\quad \quad}({V4})}}} = 1.41} \\{{{\left( {0,0,0,0,1} \right)\quad {V5}\quad \left( {0,0,0,0,1} \right)\quad {V5}}->{{V5}\quad {{mod}{\quad \quad}({V5})}}} = 1} \\{{{\left( {1,1,0,0,0} \right)\quad {V1}}->{{V1}\quad {mod}\quad ({V1})}} = 1.41} \\{{{\left( {1,{- 1},0,0,0} \right)\quad {V2}}->{{V2}\quad {mod}\quad ({V2})}} = 1.41} \\{{{\left( {0,0,1,1,0} \right)\quad {V3}}->{{V3}\quad {mod}\quad ({V3})}} = 1.41} \\{{{\left( {0,0,0.707,{- 0.707},1} \right)\quad {V5}} + {{1/1.41}\quad {V4}}}->{V4}} \\{{{\left( {0,0,1,{- 1},1.41} \right)\quad {V4}} - {{1.41/1}\quad {V5}}}->{V5}}\end{matrix}$

[0143] The advantage of this method is that a fully orthogonal set canbe defined for any dimension (code length).

EXAMPLE 10 A Method to Generate a Waveform with a Plurality ofOrthogonal PN Codes, to Modulate a Plurality of Data Streams, Togetherwith a Non-Orthogonal PN-Code, Having Good Autocorrelation Properties

[0144] This method comprises the steps of:

[0145] 1. Take a plurality of orthogonal codes (e.g., using thetechniques mentioned above) that are used to spread a plurality of datastreams;

[0146] 2. Combine each of said spread data streams with in-phase BPSKmodulations, and perform the addition, after optional gain control ofeach spread stream;

[0147] 3. Define a PN-code with good autocorrelation properties, andcombine said code with BPSK modulation, which is orthogonal (90 degreesout-of-phase) with the BPSK of step 2;

[0148] 4. Combine the signals of step 2 and of step 3 as a complexsignal with time-aligned PN-codes.

[0149] The advantage of this code set is that there is a code with goodautocorrelation properties, so acquisition can be done without problems.The cross-correlation properties between the orthogonal codes of step 2and the code of step 3, do not influence the quality of the signalbecause it is “out-phase cross-correlation”See FIG. 2.

EXAMPLE 11 A Method to Demodulate the Above Waveform

[0150] The method comprises the steps of:

[0151] 1. Search the PN Code start of said code with goodautocorrelation properties;

[0152] 2. Track said PN code with good autocorrelation properties;

[0153] 3. Despread and demodulate said data streams which aretime-aligned with said PN-code with good autocorrelation properties.

[0154] Conclusion

[0155] Certain embodiments provide a new method of multiplexing users ina network using QS-CDMA combined with TDD.

[0156] Certain embodiments provide an apparatus that comprises saidmethod.

[0157] Certain embodiments provide a QS-CDMA-TDD network comprising abase station and user terminals.

[0158] While the above detailed description has shown, described, andpointed out the fundamental novel features of the invention as appliedto various embodiments, it will be understood that various omissions andsubstitutions and changes in the form and details of the systemillustrated may be made by those skilled in the art, without departingfrom the intent of the invention.

1. A method of constructing orthogonal codes of length N for use in anetwork utilizing quasi-synchronous code division multiple accesscombined with time division duplexing, the method comprising: a)determining the balanced vectors of length N, being all possiblecross-correlation vectors resulting from zero cross-correlation of codesof length N; b) providing an arbitrary code of length N; c) performingbitwise XOR-ing with all the balanced vectors determined in a), toproduce a set of codes with which the arbitrary code is orthogonal; d)performing bitwise XOR-ing of the balanced vectors determined in a); e)adding the code to a set of orthogonal codes if the result of d) isbalanced; f) performing a) through e) until the set of orthogonal codescontains maximally N orthogonal codes; and g) applying the set oforthogonal codes to a plurality of data streams in the network so as toprovide spread spectrum data streams.
 2. The method defined in claim 1,wherein the network comprises a satellite communications network havingmobile and fixed terminals.
 3. The method defined in claim 1, whereinthe network comprises a cellular communications network.
 4. The methoddefined in claim 1, wherein the network comprises a short-rangeterrestrial communications network.
 5. A computer usable medium havingcomputer readable program code embodied therein for constructingorthogonal codes of length N for use in a network utilizingquasi-synchronous code division multiple access combined with timedivision duplexing, the computer readable code comprising instructionsfor: a) determining the balanced vectors of length N, being all possiblecross-correlation vectors resulting from zero cross-correlation of codesof length N; b) providing an arbitrary code of length N; c) performingbitwise XOR-ing with all the balanced vectors determined in a), toproduce a set of codes with which the arbitrary code is orthogonal; d)performing bitwise XOR-ing of the balanced vectors determined in a); e)adding the code to a set of orthogonal codes if the result of d) isbalanced; f) performing a) through e) until the set of orthogonal codescontains maximally N orthogonal codes; and g) applying the set oforthogonal codes to a plurality of data streams in the network so as toprovide spread spectrum data streams.
 6. A system for constructingorthogonal codes of length N for use in a network utilizingquasi-synchronous code division multiple access combined with timedivision duplexing, the system comprising: a) means for determining thebalanced vectors of length N, being all possible cross-correlationvectors resulting from zero cross-correlation of codes of length N; b)means for providing an arbitrary code of length N; c) means forperforming bitwise XOR-ing with all the balanced vectors determined ina), to produce a set of codes with which the arbitrary code isorthogonal; d) means for performing bitwise XOR-ing of the balancedvectors determined in a); e) means for adding the code to a set oforthogonal codes if the result of d) is balanced; f) means forperforming a) through e) until the set of orthogonal codes containsmaximally N orthogonal codes; and g) means for applying the set oforthogonal codes to a plurality of data streams in the network so as toprovide spread spectrum data streams.
 7. The system defined in claim 6,wherein the system is embodied as an integrated circuit.
 8. A method ofconstructing orthogonal codes of length N for use in a network utilizingquasi-synchronous code division multiple access combined with timedivision duplexing, the method comprising: a) determining the balancedcodes of length N, being all possible cross-correlation codes resultingfrom zero cross-correlation of codes of length N; b) providing anarbitrary code of length N; c) performing bitwise XOR-ing of saidarbitrary code with all the balanced codes determined in a), to producecode sets of orthogonal codes, each code set corresponding to thebalanced vector used to produce said code set and each including thearbitrary code; d) performing bitwise XOR-ing of one of the set ofbalanced codes with each of the other members of the set of balancedcodes; e) for each of said bitwise XOR-ing operations in d): if theresult is balanced, adding said balanced result to a new set of balancedcodes and merging the two code sets corresponding to the two balancedcodes that resulted in said balanced result in d) to a new code setcorresponding to said balanced result; f) replacing said set of balancedcodes in d) with said new set of balanced codes obtained in e); g)performing d) through f) until the number of codes in said code setsequals N; and h) applying the set of orthogonal codes to a plurality ofdata streams in the network so as to provide spread spectrum datastreams.
 9. The method defined in claim 8, wherein the network comprisesa satellite communications network having mobile and fixed terminals.10. The method defined in claim 8, wherein the network comprises acellular communications network.
 11. The method defined in claim 8,wherein the network comprises a short-range terrestrial communicationsnetwork.
 12. A computer usable medium having computer readable programcode embodied therein for constructing orthogonal codes of length N foruse in a network utilizing quasi-synchronous code division multipleaccess combined with time division duplexing, the computer readable codecomprising instructions for: a) determining the balanced codes of lengthN, being all possible cross-correlation codes resulting from zerocross-correlation of codes of length N;. b) providing an arbitrary codeof length N; c) performing bitwise XOR-ing of said arbitrary code withall the balanced codes determined in a), to produce code sets oforthogonal codes, each code set corresponding to the balanced vectorused to produce said code set and each including the arbitrary code; d)performing bitwise XOR-ing of one of the set of balanced codes with eachof the other members of the set of balanced codes; e) for each of saidbitwise XOR-ing operations in d): if the result is balanced, adding saidbalanced result to a new set of balanced codes and merging the two codesets corresponding to the two balanced codes that resulted in saidbalanced result in d) to a new code set corresponding to said balancedresult; f) replacing said set of balanced codes in d) with said new setof balanced codes obtained in e); g) performing d) through f) until thenumber of codes in said code sets equals N; and h) applying the set oforthogonal codes to a plurality of data streams in the network so as toprovide spread spectrum data streams.
 13. A system for constructingorthogonal codes of length N for use in a network utilizingquasi-synchronous code division multiple access combined with timedivision duplexing, the system comprising: a) means for determining thebalanced codes of length N, being all possible cross-correlation codesresulting from zero cross-correlation of codes of length N; b) means forproviding an arbitrary code of length N; c) means for performing bitwiseXOR-ing of said arbitrary code with all the balanced codes determined ina), to produce code sets of orthogonal codes, each code setcorresponding to the balanced vector used to produce said code set andeach including the arbitrary code; d) means for performing bitwiseXOR-ing of one of the set of balanced codes with each of the othermembers of the set of balanced codes; e) means for each of said bitwiseXOR-ing operations in d): if the result is balanced, adding saidbalanced result to a new set of balanced codes and merging the two codesets corresponding to the two balanced codes that resulted in saidbalanced result in d) to a new code set corresponding to said balancedresult; f) means for replacing said set of balanced codes in d) withsaid new set of balanced codes obtained in e); g) means for performingd) through f) until the number of codes in said code sets equals N; andh) means for applying the set of orthogonal codes to a plurality of datastreams in the network so as to provide spread spectrum data streams.14. The system defined in claim 13, wherein the system is embodied as anintegrated circuit.